// 预约相关类型
export interface Appointment {
  id: number
  studentId: number
  studentName: string
  counselorId: number
  counselorName: string
  appointmentTime: string
  type: string
  status: string
  displayText: string
  description: string
  cancelReason?: string
  createTime: string
  updateTime: string
}

// 咨询师类型
export interface Counselor {
  id: number
  userId?: number
  realName: string
  title: string
  specialty: string[]
  introduction: string
  workYears?: number
  qualification?: string
  certificateUrl?: string
  status?: string
  rating?: number
  consultationCount?: number
  createTime?: string
  updateTime?: string
}

// 查询参数类型
export interface QueryParams {
  pageNum?: number
  pageSize?: number
  [key: string]: any
}

// 排班相关类型
export interface Schedule {
  id: number
  counselorId: number
  date: string
  timeSlots: string
  createTime: string
  updateTime: string
}

// 排班查询参数类型
export interface ScheduleQuery {
  counselorId: number | string
  startDate: string
  endDate: string
}

// 排班提交参数
export interface ScheduleSubmit {
  counselorId: number | string
  scheduleDate: string
  timeSlots: string[]
}

// 批量排班提交的类型定义
export interface BatchScheduleSubmit {
  counselorId: number | string
  startDate: string        // 开始日期
  period: SchedulePeriod   // 排班周期
  timeSlots: string[]      // 时间段
  excludeHolidays: boolean // 是否排除节假日
}

// 排班周期类型
export type SchedulePeriod = 'month' | 'year'

// API 响应类型
export interface ApiResponse<T> {
  code: number
  message: string
  data: T
}

// 分页响应类型
export interface PageResult<T> {
  records: T[]
  total: number
  size: number
  current: number
  pages?: number
  orders?: any[]
  optimizeCountSql?: boolean
  searchCount?: boolean
}

// 查询参数类型
export interface AppointmentQuery {
  pageNum: number
  pageSize: number
  status?: string
  startTime?: string
  endTime?: string
  counselorName?: string
  studentId?: number | undefined
  counselorId?: number | undefined
}

// 咨询师审核状态枚举
export enum CounselorStatus {
  PENDING = 'pending',
  APPROVED = 'approved',
  REJECTED = 'rejected'
}

// 审核请求参数
export interface ReviewRequest {
  id: number
  status: string
  reviewNote?: string
}

// 分页查询参数
export interface PageQuery {
  current: number
  size: number
  status?: string
}

export interface CounselorQuery {
  pageNum: number
  pageSize: number
  title?: string
  specialty?: string
} 